package com.itheima.exception;

import com.itheima.entity.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandle {
    @ExceptionHandler(Exception.class)
    public Result handle(Exception e) {
//    输出e比e.message更加全面，e.message只能获取到异常描述信息，不全
//    {} 的作用：占位符 {} 是用于将普通参数（例如字符串、数字等）格式化嵌入到日志消息中的。
//    如果你写 log.error("服务器异常: {}", e)，框架会把 e.toString() 的结果填入 {}，
//    通常只输出异常的类型和消息（例如 java.lang.NullPointerException: null），而不是完整的堆栈跟踪。
//    直接传入异常对象：当你写 log.error("服务器异常: ", e)（注意逗号后直接跟 e），
//    日志框架会将前面的字符串作为消息主体，后面的 e 作为异常对象处理，自动附加完整的堆栈信息。
      log.error("服务器异常:", e);
      return  Result.error("服务器异常,请练习管理人员");
    }
}
